home *** CD-ROM | disk | FTP | other *** search
/ Amiga Game-Power / Amiga Game-Power.iso / anwendungen / gw print / structurebrowser_v1.3 / sources / sbscreen.c < prev    next >
C/C++ Source or Header  |  1994-05-20  |  5KB  |  143 lines

  1. /*
  2.    Handles the Screen structure
  3.  
  4.    Not implemented:
  5.       Screen.LayerInfo
  6.       Screen.ExtData
  7.       Screen.UserData
  8. */
  9.  
  10. #include "header/sb.h"
  11.  
  12. extern int level;
  13.  
  14. PrScreen (string, screen)
  15. char *string;
  16. struct Screen *screen;
  17. {
  18. static struct StructData structdata [] = {
  19.    { " NextScreen",   "struct Screen *",     PRPTR,      PTRSIZE    },
  20.    { " FirstWindow",  "struct Window *",     PRPTR,      PTRSIZE    },
  21.    { "-LeftEdge",     "SHORT",               PRINT,      INTSIZE    },
  22.    { "-TopEdge",      "SHORT",               PRINT,      INTSIZE    },
  23.    { "-Width",        "SHORT",               PRINT,      INTSIZE    },
  24.    { "-Height",       "SHORT",               PRINT,      INTSIZE    },
  25.    { "-MouseY",       "SHORT",               PRINT,      INTSIZE    },
  26.    { "-MouseX",       "SHORT",               PRINT,      INTSIZE    },
  27.    { " Flags",        "USHORT",              PRUINT,     INTSIZE    },
  28.    { " Title",        "UBYTE *",             PRSTRING,   PTRSIZE    },
  29.    { " DefaultTitle", "UBYTE *",             PRSTRING,   PTRSIZE    },
  30.    { "-BarHeight",    "BYTE",                PRBYTE,     BYTESIZE   },
  31.    { "-BarVBorder",   "BYTE",                PRBYTE,     BYTESIZE   },
  32.    { "-BarHBorder",   "BYTE",                PRBYTE,     BYTESIZE   },
  33.    { "-MenuVBorder",  "BYTE",                PRBYTE,     BYTESIZE   },
  34.    { "-MenuHBorder",  "BYTE",                PRBYTE,     BYTESIZE   }
  35. };
  36.  
  37. static char *flagnames[8] = {
  38.    "WBENCHSCREEN",   "CUSTOMSCREEN",  NULL,             NULL,
  39.    "SHOWTITLE",      "BEEPING",       "CUSTOMBITMAP",   NULL
  40. };
  41.  
  42. int i, sum;
  43. int choice = -1;
  44. ULONG bits;
  45.  
  46.    level++;
  47.  
  48.    while (choice)
  49.    {
  50.       sum = SetOptionText(string, structdata, (APTR)screen, DATASIZE, 0);
  51.  
  52.       switch (choice = GetChoice(MAXGADG + 1)) {
  53.          case 1:
  54.             if (screen->NextScreen)
  55.                PrScreen("The next screen in Intuition's list",
  56.                         screen->NextScreen);
  57.             break;
  58.          case 2:
  59.             if (screen->FirstWindow)
  60.                PrWindow("The screen's first window", screen->FirstWindow);
  61.             break;
  62.          case 9:
  63.             if ((bits = screen->Flags) & 2)
  64.                bits ^= 1;
  65.             FlagPrint("The Screen's Flags", flagnames, bits);
  66.             break;
  67.          case 10:
  68.             PrString("The Screen's Title", screen->Title);
  69.             break;
  70.          case 11:
  71.             PrString("The Screen's Default Title", screen->DefaultTitle);
  72.             break;
  73.          case MOREGADG:
  74.             PrScreen2("Screen members (page 2)", screen, sum);
  75.             break;
  76.       }
  77.    }
  78.    level--;
  79. }
  80.  
  81. PrScreen2 (string, screen, offset)
  82. char *string;
  83. struct Screen *screen;
  84. int offset;
  85. {
  86. static struct StructData structdata[] = {
  87.    { "-WBorTop",      "BYTE",                 PRBYTE, BYTESIZE       },
  88.    { "-WBorLeft",     "BYTE",                 PRBYTE, BYTESIZE       },
  89.    { "-WBorRight",    "BYTE",                 PRBYTE, BYTESIZE       },
  90.    { "-WBorBottom",   "BYTE",                 PRBYTE, INTSIZE        },
  91.    { " Font",         "struct TextAttr *",    PRPTR, PTRSIZE         },
  92.    { " ViewPort",     "struct ViewPort",      PRNULL, SZ(ViewPort)   },
  93.    { " RastPort",     "struct RastPort ",     PRNULL, SZ(RastPort)   },
  94.    { " BitMap",       "struct BitMap",        PRNULL, SZ(BitMap)     },
  95.    { "(LayerInfo",    "struct Layer_Info)",   PRNULL, SZ(Layer_Info) },
  96.    { " FirstGadget",  "struct Gadget *",      PRPTR, PTRSIZE         },
  97.    { "-DetailPen",    "UBYTE",                PRUBYTE, BYTESIZE      },
  98.    { "-BlockPen",     "UBYTE",                PRUBYTE, BYTESIZE      },
  99.    { "-SaveColor0",   "USHORT",               PRUINT, INTSIZE        },
  100.    { " BarLayer",     "struct Layer *",       PRPTR, PTRSIZE         },
  101.    { "(ExtData",      "UBYTE *)",             PRPTR, PTRSIZE         },
  102.    { "(UserData",     "UBYTE *)",             PRPTR, PTRSIZE         }
  103. };
  104.  
  105. int i, sum;
  106. int choice = -1;
  107.  
  108.    level++;
  109.  
  110.    while (choice)
  111.    {
  112.       sum = SetOptionText(string, structdata, (APTR)screen, DATASIZE, offset);
  113.  
  114.       switch (choice = GetChoice(DATASIZE))
  115.       {
  116.          case 5:
  117.             if (screen->Font)
  118.                PrTextAttr("The font attributes for this Screen",
  119.                   screen->Font);
  120.             break;
  121.          case 6:
  122.             PrViewPort("The screen's ViewPort", &screen->ViewPort);
  123.             break;
  124.          case 7:
  125.             PrRastPort("The screen's RastPort", &screen->RastPort);
  126.             break;
  127.          case 8:
  128.             PrBitMap("The screen's BitMap", &screen->BitMap);
  129.             break;
  130.          case 10:
  131.             if (screen->FirstGadget)
  132.                PrGadget("The screen's first gadget", screen->FirstGadget);
  133.             break;
  134.          case 14:
  135.             if (screen->BarLayer)
  136.                PrLayer("The Layer for the Screen's title bar",
  137.                      screen->BarLayer);
  138.             break;
  139.       }
  140.    }
  141.    level--;
  142. }
  143.